/*
 * IA.java
 *
 * Created on 9 de diciembre de 2005, 14:11
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package javamus;

/**
 *
 * @author jga87y
 */
public class IA extends PlayerExtend {
    

    
    /** Creates a new instance of IA */
    public IA(String nombre,Mazo mazo, MesaSwing p ,int posicion,int equipo) {
        c1 =(Carta) mazo.sacarCarta(c1);
        c2 =(Carta) mazo.sacarCarta(c2);
        c3 =(Carta) mazo.sacarCarta(c3);
        c4 =(Carta) mazo.sacarCarta(c4);
        this.equipo = equipo;
        this.nombre = nombre;
        this.posicion = posicion;
        this.p = p;
    }
    
    
    public boolean quieroMus(){ 
        if (valorJuego()==31) {
            p.escribir(this.nombre + "> "+ "Corto");
            return false;
        }
        p.escribir(this.nombre +"> "+ "Quiero mus");
        return true;
    }

    public boolean preguntarMus() {
        
        if ((this.valorJuego()==31)&&(this.posicion == 1))
        {
            p.escribir(this.nombre + "> "+"Corto");
            return false;
        }
        if ((this.valorJuego()==32)&&(this.posicion!=1))
        {
            p.escribir(this.nombre + "> "+"Corto");
            return false;
    
        }
        if (this.puntosPares() ==3)
        {
            p.escribir(this.nombre + "> "+"Corto");
            return false;
        }
        p.escribir(this.nombre + "> "+"Quiero Mus");
        return true;
        
    }
       
    
    public void cambiarCartas(Mazo m) {
        if(this.c1.valorGrandes()!=9) this.c1 = m.sacarCarta(c1);
        if(this.c2.valorGrandes()!=9) this.c2 = m.sacarCarta(c2);
        if(this.c3.valorGrandes()!=9) this.c3 = m.sacarCarta(c3);
        if(this.c4.valorGrandes()!=9) this.c4 = m.sacarCarta(c4);
    }

    public void preguntarGrandes(Marcador m) {
        // Si hay apuesta 
        if (m.getApuesta())
        {
            if (m.apuestaGrande < 8){
                if (this.valorGrandes() > 9900){               
                    this.apuestaGrande(m, 2);
                    return;
                }
                else if (this.valorGrandes() > 9500){
                    this.verGrandes(m);
                    return;
                }
                else{
                    this.pasa(m);
                    return;
                }
            }
            else
            {
                if (this.valorGrandes() > 9900){               
                    this.verGrandes(m);
                    return;
                }
                else
                {
                    this.pasa(m);
                }
            }
        } else
        // Si no hay apuesta también se pasa
        {
             if (this.valorGrandes() > 9900){               
                apuestaGrande(m,4);
            }
            else if (this.valorGrandes() > 9960){
                apuestaGrande(m,6);
            }
            else{
                pasa(m);
            }
        }
    }

    @Override
    public void preguntarChicas(Marcador m) {
        // Si hay apuesta 
        if (m.getApuesta())
        {
            if (this.valorChicas() < 1000){               
                m.apuestaChica = m.apuestaV;
                m.apuestaV += Aleatorio.random(2, 6); 
                apuesta(m);
            }else if (Aleatorio.random(2, 5)<m.apuestaV)
            {
                this.verChicas(m);
            }
            else if (this.valorChicas() < 1500)
            {
                this.verChicas(m);
            }
            else
            {
                this.pasa(m);
            }
            
        } else
        // Si no hay apuesta también se pasa
        {
            pasa(m);
        }
    }

    
    public void apuesta(Marcador m){
        m.apuesta();       
    }
    public void preguntarPares(Marcador m) {
        int al = Aleatorio.random(1, 100)-(m.apuestaPares+m.apuestaV);
        // Si hay apuesta 
        if (m.getApuesta())
        {   
            // JUEGO AGRESIVO
            if(al >= 70)
            {
                if (this.puntosPares() > 2){               
                    this.apuestaPares(m, Aleatorio.random(2, 5));
                    return;
                }
                else
                if(this.puntosPares() == 2)
                {
                    this.verPares(m);
                    return;
                }
                else
                {
                    this.verPares(m);
                    return;
                }
            }
            // JUEGO NO AGRESIVO
            else
            {
              if (this.puntosPares() > 2){               
                    this.verPares(m);
                    return;
                }
                else
                if(this.puntosPares() == 2)
                {
                    this.verPares(m);
                    return;
                }
                else
                {
                    this.pasa(m);
                    return;
                }
                
                
            }
        } else
        // Si no hay apuesta
        {
            if (this.puntosPares() > 1){
                int aa = Aleatorio.random(1, 4)+this.puntosPares();
                this.apuestaPares(m,aa);
                return;
            }else{
                this.pasa(m);
                return;
            }
        }
    }

    public void preguntarJuego(Marcador m) {
        // Si hay apuesta
        int valor = 0;
        if ((this.posicion != 1)&&(this.valorJuego()==31)) valor = 4;
        if ((this.posicion == 1)&&(this.valorJuego()==32)) valor = 7;
        if ((this.posicion == 1)&&(this.valorJuego()==31)) valor = 9;
         
        valor += Aleatorio.random(1, 3);
        // SI HAY APUESTA
        if (m.apuestaV > 1)
        {
            // SI LA APUESTA ES ALTA
            if ((m.apuestaJuego+m.apuestaV) > Aleatorio.random(4, 12))
            {
                if (valor > 8.5){               
                    this.verJuego(m);
                }else{
                    this.pasa(m);
                }
            }
            // SI LA APUESTA NO ES ALTA
            else
            {
                if (valor > 7){
                    this.apuestaJuego(m, Aleatorio.random(2, 6));
                }
                else
                {
                    this.pasa(m);
                }
                    
            }
        } else
        // Si no hay apuesta también se pasa
        {
            this.pasa(m);
        }

    }

  
    
   
    
}
